Cel		: Morfit World Builder 3D2000 II
Opis		: Tworzenie scen 3D
Gdzie		: PCShareware 06/99
Narzedzia	: Wisdec(Windows Installshield Decompiler V1.00 Beta)
		  http://www.wco.com/~micuan w sekcji tools

1.Wisdec to bardzo przydatne narzedzie, jest to bowiem dekompilator
skryptow instalacyjnych(*.ins) wykorzystywanych w instalatorach firmy
InstallShield.W takim skrypcie zapisane jest postepowanie programu
instalacyjnego np.ze ma prosic o serial, co ma zrobic gdy wpiszemy
niepoprawny,czy ma wyswietlac umowe licencyjna czy nie itp,itd...
2.Wisdec pozwala zaoszczedzic troszke czasu niz mielibysmy szukac np.
seriala za pomoca SoftIca.
3.Instalator programu MWB2000 prosi o numer seryjny podczas instalacji.
Gdy wpiszemy niepoprawny zostaniemy odeslani do odczytania umowy
licencyjnej a tam jak mozemy zdobyc numer rejestracyjny.Zapisujemy sobie
tekst jaki wyskakuje gdy wpiszemy zly serial:

This serial number is not valid!Get the serial number by registering
at www.morfit.com

4.Wychodzimy z instalatora MWB2000(lub mozna w locie zrobic 2 kopie
dla Wisdec-a).Uruchamiamy Wisdeca, w menu wybieramy Open Script File
idziemy do katalogu z instalka MWB2000 wybieramy plik setup.ins.
(plik musi miec usuniete atrybuty READ-ONLY)
Dalej w menu Decompile zaznaczamy Optimization potem Start.
Wisdec posiada 2 listy z ciagami, liste MsgRef(wiadomosci) i StrRef
(katalogi docelowe, texty z okienek...).Gdy proces dekompilacji
dobiegnie konca klikamy na MsgRef i co widzimy?

This serial number is not valid!Get......

Wyglada to na text jaki pojawia sie gdy wpiszemy niepoprawny serial
Klikamy na nim ladujemy w:

<LABEL_000F> REF: 00000EDB 
  |
00000F85: 00B6   START OF FUNCTION (3*StrLocals + 2*NumLocals)
00000F97: 0013   StrVar[001D] = ""
00000F9F: 0013   StrVar[001E] = ""
00000FA7: 0013   StrLocal[0001] = ""
00000FAF: 0013   StrLocal[0002] = "Type your name below. You must also type
				   the name of the company you work for and the product serial number.
				   Get the serial number by registering at www.morfit.com "
0000107B: 0128   IF (SdRegisterUserEx_[LABEL_0080] = 00000001) THEN
0000109B: 0030        StrSub (StrLocal[0003],StrVar[001F],00000000,00000001)
000010B6: 0128        IF (StrCompare (StrLocal[0003],"M") = 00000000) THEN
000010D6: 012F             Return (00000001)
000010DF: 0000        ELSE
000010E8: 002A             MessageBox ("This serial number is not valid!Get the serial
				        number by registering at www.morfit.com",WARNING)
00001149: 012F             Return (0000000C)
0000114A: 0000        ENDIF
0000114B: 0000   ENDIF
00001156: 012F   Return (NumLocal[0001])
0000115D: 00B8   END OF FUNCTION ()

Pod 000010E8 widzimy wywolanie MessageBox z textem o niepoprawnym
serialu.Powyzej tego wywolania widzimy cos takiego

IF (StrCompare (StrLocal[0003],"M") = 00000000) THEN	; string compare
 Return (00000001)					; wartosc zwracana przez funkcje,podobnie jak np. w C return 0;
ELSE
MessageBox ("This serial number is not valid!Get the serial
	     number by registering at www.morfit.com",WARNING)
 Return (0000000C)
ENDIF

Wyglada to na porowanie jakiegos ciagu z litera M, gdy ten ciag jest
rozny od M to nastepuje wywolanie msgbox o zlym serialu.Sprobujmy
wiec podczas instalacji wpisac jako numer seryjny "M".Uruchamiamy
instalator jeszcze raz, wpisujemy jako numer seryjny M.Wow poszlo
dalej bez sprzeciwow.Uruchamiamy zainstalowny MWB2000 dziala
poprawnie.

Wisdec pozwala takze zmieniac kod skryptu bezposrednio po
dekompilacji skryptu, ustawiac poprawna sume CRC po zmianie
kodu skryptu.

Tak nawiasem mowiac to nie wiem czy serial byl podany
przez gazetke z ktorej mam MWB2000(w katalogu instalacyjnym
nic nie bylo, w gazecie nic nie pisalo) poniewaz moj czytnik
CD nie potrafil odczytac plikow z katalogu glownego CD-ka
gdzie byla przegladarka plyty,(wszystkie inne CD-ki czyta
poprawnie), system meczyl tak dlugo az padal, czyszczenie
soczewki nic nie dalo...coz rzec coraz gorsze robia te
wytlaczanki :(

pozdrowienia
bart
cryogen@free.net.pl